package com.yanqu.road.server.manger.activity.auto.send;

import com.yanqu.road.entity.activity.ActivityInfo;
import com.yanqu.road.entity.enums.eActivityType;

import java.util.HashMap;
import java.util.Map;

public class AutoSendActivityFactory {
    private static Map<Integer, Class<? extends BaseAutoSendActivity>> autoSendActivityMap = new HashMap<>();

    static {
        autoSendActivityMap.put(eActivityType.StrongholdWarActivity.getValue(), StrongholdAutoSend.class);
        autoSendActivityMap.put(eActivityType.CrossHuaShiGangActivity.getValue(), HuaShiGangAutoSend.class);
        autoSendActivityMap.put(eActivityType.DaFuWeng.getValue(), DaFuWengAutoSend.class);
        autoSendActivityMap.put(eActivityType.CrossCommonActivity.getValue(), CommonActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.CrossRankActivity.getValue(), CrossRankAutoSend.class);
        autoSendActivityMap.put(eActivityType.CrossTradeWarActivity.getValue(), CrossTradeWarActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.CrossUnionActivity.getValue(), CrossUnionActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.OreWarActivity.getValue(), OreWarActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.PageantActivity.getValue(), PageantActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.CrossHolidayActivity.getValue(), CrossHolidayActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.YearMasterActivity.getValue(), YearMasterActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.ThrowingPotActivity.getValue(), ThrowingPotActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.TreasureActivity.getValue(), TreasureActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.PplActivity.getValue(), PplActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.JianChuangHuaActivity.getValue(), JianChuangHuaActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.DrawPicturesActivity.getValue(), DrawPicturesActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.ShuiHuActivity.getValue(), ShuiHuActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.TangHuluActivity.getValue(), TangHuluActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.BowArtActivity.getValue(), BowArtActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.BusyFarmingActivity.getValue(), BusyFarmingActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.PawnshopActivity.getValue(), PawnshopActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.SuoYaoActivity.getValue(), SuoYaoActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.HangHaiActivity.getValue(), HangHaiActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.GuGuoXunBaoActivity.getValue(), GuGuoXunBaoActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.DrinkActivity.getValue(), DrinkActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.DragonBoatRaceActivity.getValue(), DragonBoatRaceActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.XiaYueActivity.getValue(), XiaYueActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.CrossDunHuangShiKuActivity.getValue(), CrossDunHuangShiKuActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.CrossUnionWarActivity.getValue(), CrossUnionWarActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.CookingBoyActivity.getValue(), CookingBoyActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.ChefDuel.getValue(), ChefDuelActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.LanRuoSiActivity.getValue(), LanRuoSiActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.GhostActivity.getValue(), GhostActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.GourdChildActivity.getValue(), GourdActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.WinterLoveActivity.getValue(),WinterLoveAutoSend.class);
        autoSendActivityMap.put(eActivityType.YingXinActivity.getValue(),YingXinActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.HellActivity.getValue(), HellActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.DouLuoShrekActivity.getValue(), DouLuoShrekActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.SpringDinner.getValue(), SpringDinnerActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.ShuiHuYeZiCardActivity.getValue(), ShuHuYeZiCardActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.SeacraftActivity.getValue(), SeacraftSouthSeaActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.ShuShanActivity.getValue(), ShuShanActivityAutoSend.class);

        autoSendActivityMap.put(eActivityType.XiaowuRecallActivity.getValue(),XiaowuActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.DouLuoDaLuActivity.getValue(), DouLuoDaLuActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.ChannelRankActivity.getValue(), ChannelRankActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.ToyHouse.getValue(), ToyHouseActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.ChineseChess.getValue(), ChineseChessActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.ZhouNianTurntable.getValue(), ZhouNianTurntableAutoSend.class);
        autoSendActivityMap.put(eActivityType.CelebrationActivity.getValue(), CelebrationActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.ClimbTower.getValue(), ClimbTowerActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.RankUnionWar.getValue(), RankUnionWarActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.GreatTradeActivity.getValue(), GreatTradeActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.Twins.getValue(), TwinsActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.PeakStrongHold.getValue(), PeakStrongHoldActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.Cat.getValue(), CatActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.TongBingActivity.getValue(), TongBingAutoSend.class);
        autoSendActivityMap.put(eActivityType.ChuHanZB.getValue(), ChuHanAutoSend.class);
        autoSendActivityMap.put(eActivityType.TonBingActivity.getValue(), TonBingAutoSend.class);
        autoSendActivityMap.put(eActivityType.ChannelTonBingActivity.getValue(), ChannelTonBingAutoSend.class);
        autoSendActivityMap.put(eActivityType.OperaMask.getValue(), OperaMaskActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.FellingTrees.getValue(), FellingTreesActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.Pasture.getValue(), PastureActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.Tomb.getValue(), TombAutoSend.class);
        autoSendActivityMap.put(eActivityType.CricketSeasonActivity.getValue(), CricketAutoSend.class);
        autoSendActivityMap.put(eActivityType.WorldCup.getValue(), WorldCupActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.LionDance.getValue(), LionDanceActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.CarpTripActivity.getValue(), CarpTripAutoSend.class);
        autoSendActivityMap.put(eActivityType.FanXiuSpringActivity.getValue(), FanXiuSpringAutoSend.class);
        autoSendActivityMap.put(eActivityType.SpringDinner.getValue(), FireWorkActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.XiuXian.getValue(), XiuXianActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.Feast.getValue(), ShanHeFeastActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.FireWork2023.getValue(), FireWorkActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.FlowerCards.getValue(), FlowerCardAutoSend.class);
        autoSendActivityMap.put(eActivityType.JieShi.getValue(), JieShiActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.PeakSeacraftActivity.getValue(), PeakSeacraftActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.PeerlessBeautyLotteryActivity.getValue(), PeerlessBeautyLotteryActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.GoddessActivity.getValue(), GoddessActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.CommonWishDraw.getValue(), CommonWishDrawAutoSend.class);
        autoSendActivityMap.put(eActivityType.DeepFishing.getValue(),DeepFishingAutosend.class);
        autoSendActivityMap.put(eActivityType.FiveHero.getValue(), FiveHeroAutoSend.class);
        autoSendActivityMap.put(eActivityType.LangYaMemorial.getValue(), LangYaMemorialAutoSend.class);
        autoSendActivityMap.put(eActivityType.GoldAutumn.getValue(), GoldAutumnAutoSend.class);
        autoSendActivityMap.put(eActivityType.CrossPasture.getValue(), EnterNameActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.AreaWashePkActivity.getValue(), EnterNameActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.LangYaBang.getValue(),LangYaBangAutoSend.class);
        autoSendActivityMap.put(eActivityType.SilkRoad.getValue(), SilkRoadAutoSend.class);
        autoSendActivityMap.put(eActivityType.FlowerStudy.getValue(),FlowerStudyAutoSend.class);
        autoSendActivityMap.put(eActivityType.WanYao.getValue(), WanYaoAutoSend.class);
        autoSendActivityMap.put(eActivityType.DigGold.getValue(), DigGoldAutoSend.class);
        autoSendActivityMap.put(eActivityType.EveFeast.getValue(), EveFeastAutoSend.class);
        autoSendActivityMap.put(eActivityType.WitchDraw.getValue(),WitchDrawAutoSend.class);

        autoSendActivityMap.put(eActivityType.QiXiActivity.getValue(), QixiAutoSend.class);
        autoSendActivityMap.put(eActivityType.GuaGiftsActivity.getValue(), GuaGiftsAutoSend.class);
        autoSendActivityMap.put(eActivityType.DaoMu.getValue(), DaoMuActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.SteleSoul.getValue(), SteleSoulAutoSend.class);
        autoSendActivityMap.put(eActivityType.MusicRoomRank.getValue(), MusicRoomRankActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.JiuZhou.getValue(), JiuZhouAutoSend.class);
        autoSendActivityMap.put(eActivityType.SnowGarden.getValue(), SnowGardenAutoSend.class);
        autoSendActivityMap.put(eActivityType.ActivityFund.getValue(), SnowGardenAutoSend.class);
        autoSendActivityMap.put(eActivityType.RuiShou.getValue(), RuiShouAutoSend.class);
        autoSendActivityMap.put(eActivityType.ZhenHuan.getValue(), ZhenHuanAutoSend.class);
        autoSendActivityMap.put(eActivityType.BiaoJu.getValue(), BiaoJuAutoSend.class);
        autoSendActivityMap.put(eActivityType.SpringDraw.getValue(), SpringDrawActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.SuiTang.getValue(), SuiTangAutoSend.class);
        autoSendActivityMap.put(eActivityType.FoxCard.getValue(), FoxCardAutoSend.class);
        autoSendActivityMap.put(eActivityType.HongXianActivity.getValue(), HongXianAutoSend.class);
        autoSendActivityMap.put(eActivityType.Harps.getValue(), HarpsActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.SummerGames.getValue(), SummerGamesAutoSend.class);
        autoSendActivityMap.put(eActivityType.SonHai.getValue(), SonHaiActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.HsIsland.getValue(), HsIslandActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.Turtle.getValue(), TurtleAutoSend.class);
        autoSendActivityMap.put(eActivityType.HorseRun.getValue(),HorseRunActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.HotpotJump.getValue(), HotpotJumpAutoSend.class);
        autoSendActivityMap.put(eActivityType.Gashapon.getValue(), GashaponAutoSend.class);
        autoSendActivityMap.put(eActivityType.Apprentice.getValue(), ApprenticeAutoSend.class);
        autoSendActivityMap.put(eActivityType.XingYouShanShui.getValue(), XingYouShanShuiAutoSend.class);
        autoSendActivityMap.put(eActivityType.YQHotel.getValue(),YqHotelActivityAutoSend.class);
        autoSendActivityMap.put(eActivityType.ChannelMusicRoomRank.getValue(),ChannelMusicRoomRankActivityAutoSend.class);
    }


    public static BaseAutoSendActivity createAutoSendActivity(ActivityInfo activityInfo) {
        Class<? extends BaseAutoSendActivity> clazz = autoSendActivityMap.get(activityInfo.getType());
        if (clazz != null) {
            try {
                BaseAutoSendActivity instance = clazz.getConstructor(activityInfo.getClass()).newInstance(activityInfo);
                return instance;
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return null;
    }
}
